from multiprocessing import Process, Queue
import time


def f(q):
    # 子进程往队列里面放东西
    print('进入子进程')
    time.sleep(3)
    q.put('two')
    print('出了子进程')


def main():
    # 实现一个支持进程通信的队列
    q = Queue()

    # 父进程往队列里面放东西
    q.put('one')
    # 起一个子进程，让他执行f方法，并且把队列给他
    process = Process(target=f, args=(q,))
    process.start()
    process.join()
    # 非阻塞从队列取东西,不会等待，如果没有会报错
    print(q.get_nowait())
    print(q.get_nowait())
    # 阻塞等待。一直等到有东西才返回
    print('=====')
    print(q.get())
    print(q.get())


if __name__ == '__main__':
    main()
